Central Docs
Catálogo Inicio

02. `unique` y `Region_t`

unique declara un préstamo exclusivo para una región de almacenamiento:

func transform(
    data: unique buffer[],
    length: Len_t,
    region: Region_t
) void:
    if length > 0:
        data[0] = 1
    return

Region_t es un parámetro oculto en la llamada. El compilador lo acepta solo cuando puede demostrar una procedencia concreta y exclusiva. Dos argumentos unique no pueden representar la misma región.

La garantía es estática y no crea un objeto de ownership en runtime. Tampoco se aplica a punteros crudos: obtener una dirección con $value no convierte ese puntero en unique ni permite retornarlo desde una función.